/* ========================================================================= */
/* ------------------------------------------------------------------------- */
/*!
  \file			pgcharacteristic.h
  \date			Sep 2012
  \author		TNick

  \brief		Contains the definition for PgCharacteristic class


*//*


 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 Please read COPYING and README files in root folder
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/
/* ------------------------------------------------------------------------- */
/* ========================================================================= */
#ifndef __PGCHARACTERISTIC_INC__
#define __PGCHARACTERISTIC_INC__
//
//
//
//
/*  INCLUDES    ------------------------------------------------------------ */

#include	<memtrack.h>
#include	<QList>
#include	<QtCore>

/*  INCLUDES    ============================================================ */
//
//
//
//
/*  CLASS    --------------------------------------------------------------- */

namespace	cpg		{

class	CpgDoc;
class	PgSpace;
class	PgLayer;
class	PgBlock;

/**
*	@brief	Base class for characteristics in layers and items
*/
class PgCharacteristic		: public MemTrack			{
	BBM_TRACK( PgCharacteristic );

	//
	//
	//
	//
	/*  DEFINITIONS    ----------------------------------------------------- */


public:


	/**
	*	@brief	special codes common to all characteristics
	*/
	enum	SpecialCodes		{

		/* first index to be used with custom elements */
		USER_BASE = 0,

		BYLAYER = -1,
		BYBLOCK = -2

	};



	/*  DEFINITIONS    ===================================================== */
	//
	//
	//
	//
	/*  DATA    ------------------------------------------------------------ */

private:


	/**
	*	@brief	associated document
	*/
	CpgDoc *				doc_;


	/**
	*	@brief	the string naming the color
	*/
	QString				name_;



	/*  DATA    ============================================================ */
	//
	//
	//
	//
	/*  FUNCTIONS    ------------------------------------------------------- */

public:


	/**
	*	@brief	constructor;
	*/
	PgCharacteristic		(  CpgDoc * doc  );


	/**
	*	@brief	destructor;
	*/
	virtual					~PgCharacteristic		( void );


	/**
	*	@brief	get the name for this custom characteristic
	*/
	inline QString			name					( void )
	{ return name_; }


	/**
	*	@brief	get the document where this custom characteristic belongs to
	*/
	inline CpgDoc *			document				( void )
	{ return doc_; }


	/**
	*	@brief	get the name for this custom characteristic
	*/
	inline void				setName					( const QString & s_name )
	{ name_ = s_name; }




	/*  FUNCTIONS    ======================================================= */
	//
	//
	//
	//

};	/*	class PgCharacteristic	*/

/*  CLASS    =============================================================== */
//
//
//
//

}	//	namespace	cpg

#endif // __PGCHARACTERISTIC_INC__
/* ------------------------------------------------------------------------- */
/* ========================================================================= */
